package newcodercyclecontrol;

import java.util.Scanner;

public class Exercise51 {

    //    描述
//    用筛选法求n以内的素数。筛选法求解过程为：将2~n之间的正整数放在数组内存储，将数组中2之后的所有能被2整除的数清0，再将3之后的所有能被3整除的数清0 ，以此类推，直到n为止。数组中不为0 的数即为素数。
//    输入描述：
//    多组输入，每行输入一个正整数（不大于100）。
//    输出描述：
//    针对每行输入的整数n，输出两行，第一行，输出n之内（包括n）的素数，用空格分隔，
//    第二行，输出数组中2之后被清0 的个数。每行输出后换行。
//    示例1
//    输入：
//            20
//    输出：
//            2 3 5 7 11 13 17 19
//            11
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();    // 每行输入的整数n
            int[] arr = new int[n];
            boolean isLing = false;
            int index = 0;
            for (int i = 2; i < n; i++) {
                for (int j = 2; j < i; j++) {
                    if (i % j == 0) {
                        isLing = true;
                        break;
                    } else {
                        isLing = false;
                    }
                }
                if (!isLing) {
                    arr[index++] = i;
                }
            }
            int count = 0;
            for (int i = 0; i < n; i++) {
                if (arr[i] != 0) {
                    count++;
                    System.out.print(arr[i] + " ");
                }
            }
            System.out.println();
            System.out.println(n - 1 - count);
        }
    }
}
